#ifndef WHITELISTMANAGER_H
#define WHITELISTMANAGER_H

#include <QString>
#include <QStringList>
#include <QSet>
#include <QJsonObject>

class WhitelistManager {
public:
    WhitelistManager();
    ~WhitelistManager();
    
    // 加载默认白名单
    void loadDefaultWhitelist();
    
    // 从文件加载自定义白名单
    bool loadFromFile(const QString &filePath);
    
    // 保存白名单到文件
    bool saveToFile(const QString &filePath);
    
    // 添加到白名单
    void addToWhitelist(const QString &item);
    void addToWhitelist(const QStringList &items);
    
    // 从白名单移除
    void removeFromWhitelist(const QString &item);
    
    // 检查是否在白名单中
    bool isWhitelisted(const QString &item) const;
    
    // 获取所有白名单项
    QStringList getWhitelist() const;
    
    // 清空白名单
    void clear();
    
    // 加载系统API白名单
    void loadSystemAPIs();
    
    // 加载第三方库白名单
    void loadThirdPartyLibraries();
    
private:
    QSet<QString> m_whitelist;
    QSet<QString> m_systemAPIs;
    QSet<QString> m_thirdPartyLibs;
    
    // iOS系统类和方法
    void loadiOSSystemAPIs();
    
    // Android系统类和方法
    void loadAndroidSystemAPIs();
    
    // 常见第三方库
    void loadCommonLibraries();
};

#endif // WHITELISTMANAGER_H